package com.ts.api.module.product.entity.po;

import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 *  机构计划映射实体
 */
@Data
public class ProductPlanPO {

    /** 计划主键id */
    private Long id;
    /** 机构主键id */
    private Long loanProductId;
    /** 机构计划名称 */
    private String name;
    /** 真实显示名称 */
    private String displayName;
    /** 产品链接 */
    private String link;
    /** 机构类型 0（本地机构计划) ,1（全国机构计划)，2企微类型 */
    private String type;
    /** 链接跳转类型(0默认跳转， 1公众号跳转) */
    private String linkType;
    /** 产品LOGO地址 */
    private String logoPath;
    /** 机构计划结算价格 */
    private BigDecimal price;
    /** 机构计划结算分润 */
    private BigDecimal share;
    /** 进量日期，（周一-周天数字分割1;2;7）*/
    private String openDates;
    /** 开放时间24小时制，格式:（09:00-15:00） */
    private String openTime;
    /** 本地机构_优先(0否， 1是） */
    private String priorityLocalOrg;
    /** 计划状态（0禁用 1启用） */
    private Integer status;
    /** 地区编号 */
    private String areaCode;
    /** 地区名称 */
    private String areaName;
    /** 机构余额 */
    private BigDecimal productBalance;
    /** 单日限量 */
    private Integer maxLimit;
    /** 开启计划本地库唤醒（默认0禁用 1启用） */
    private Integer enableFilterLocal;
    /** 开启计划md5排重（默认0禁用 1启用） */
    private Integer enableFilterMd5;
    /** 开启多推（0禁用 默认1启用） */
    private Integer enableMultiPush;
    /** 开启进件空号检测（默认0禁用 1启用） */
    private Integer enableApplyEmptyCheck;
    /** 开启二要素验证（默认0禁用 1启用） */
    private Integer enableApplyTwoElement;
    /** 开启三要素验证（默认0禁用 1启用） */
    private Integer enableApplyThreeElement;
    /** 计划类型(默认0机构计划类型，1平台计划类型 ) */
    private Integer planType;
    /** 接入方(0=我方, 1=对方) */
    private Integer providerType;
    /** 忽略模式(0), 全流程(1), 半流程-撞库-进件模式(2), 半流程-授权回调模式(3) */
    private Integer versionType;
    /** 版本模式:(默认:0md5模式， 1手机号8位掩码模式) */
    private Integer versionMode;
    /** 分发权重比例(0-100) */
    private Integer weight;
    /** 计划环境(0 测试环境， 默认1 正式环境) */
    private Integer envType;
    /** 临时卖量返回公司名称 */
    private String tempProductName;
    /** 平台返回的回调页面 */
    private String tempCallUrl;
    /** 半流程需要使用-进件流程id */
    private String tempApplyId;
    /** 手机号掩码模式需要的流程 */
    private List<String> tempListPhoneMd5;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        ProductPlanPO that = (ProductPlanPO) o;
        return id.equals(that.id);
    }

    @Override
    public int hashCode() {
        return id.hashCode();
    }
}
